#include <stdio.h>
int fseek (stream, offset, origin);
FILE *stream; указатель на структуру FILE.
long offset; число байтов от origin.
int origin; начальная позиция.
Описание:
Функция fseek перемещает указатель, соответствующий потоку stream , на новое место расположения, отстоящее от origin на offset байтов. Следующая операция в потоке выполняется над новым месторасположением.
Если поток открыт для обновления, то следующей операцией будет либо чтение, либо запись.
Аргумент origin может быть одной из следующих констант, определенных в <stdio.h>.
ORIGIN ОПРЕДЕЛЕНИЕ
(источник, начало)
SEEK-SET начало файла.
SEEK-CUR текущая позиция указателя на файл.
SEEK-END конец файла.
Функция fseek используется для перемещения указателя в любое место файла. Указатель может быть также размещен за концом файла. Однако, попытка расположить указатель до начала файла приведет к ошибке.
Возвращаемое значение:
Функция fseek возвращает значение 0, если указатель успешно перемещен. В случае ошибки возвращается любое ненулевое значение. Для устройств, не совместимых с операцией seek, (таких как терминал и печать), возвращаемое значение неопределенно.
Замечание!
Для потоков, открытых в текстовом (преобразующем) режиме, применение fseek является ограниченным, т.к. комбинации ВК - ПС могут стать причиной выработки непредвиденного результата.
Ниже приведены операции (действия) fseek , гарантирующие работу с потоками, открытыми в текстовом режиме:
- смещение origin на величину offset , равную нулю;
- смещение от начала файла на значение offset , полученное после вызова функции ftell.
Пример.
#include <stdio.h>
FILE *stream;
int result;
stream = fopen("data", "r");
.
.
.
/* следущий оператор возвращает указатель на файл к началу
файла */
result = fseek(stream, 0L, SEEK_SET);